/*
200 成功操作
400 缺少必填参数
401 未登录
404 找不到
409 失败操作
*/
//保证格式一致
function _base(data, msg, code) {
  //如果data和msg都是字符串 说明用户只传了一个参数 而且是字符串
  if (typeof data === 'string' && typeof msg === 'string') {
    [data, msg] = [[], data];
  }
  //上一个判断保证了第二个数据不是字符串才下得来
  //如果data是字符串说明用户传的数据是 (string array) 要把他们互换
  if (typeof data === 'string') {
    [data, msg] = [msg, data];
  }
  return {
    code,
    msg,
    data,
  };
}
// 四种传参情况:
// ([],"")
// ([])

// ("")
// ("",[])

//成功返回
function successModule(data, msg = '成功操作') {
  this.ctx.body = _base(data, msg, 200);
}
//缺少参数
function lackModule(data, msg = '缺少参数') {
  this.ctx.body = _base(`缺少${data}参数或者格式不正确`, msg, 400);
}

// 找不到
function notFoundModule(data = [], msg = '接口地址不正确或者请求方式不对') {
  this.ctx.body = _base(data, msg, 404);
  //改变状态码
  // this.ctx.status = 404;
}
//失败返回
function errorModule(data = [], msg = '操作失败') {
  this.ctx.body = _base(data, msg, 409);
}
function notLogin(data, msg = '授权已过期,请重新登录!') {
  this.ctx.body = _base(data, msg, 401);
}

module.exports = {
  successModule,
  notLogin,
  lackModule,
  notFoundModule,
  errorModule,
};
